Composable, Demand-Driven Incremental Computation
نویسندگان
چکیده
Many researchers have proposed programming languages that support incremental computation (IC), which allows programs to be efficiently re-executed after a small change to the input. However, existing implementations of such languages have two important drawbacks. First, recomputation is oblivious to specific demands on the program output; that is, if a program input changes, all dependencies will be recomputed, even if an observer no longer requires certain outputs. Second, programs are made incremental as a unit, with little or no support for reusing results outside of their original context, e.g., when reordered. To address these problems, we present λ ic , a core calculus that applies a demand-driven semantics to incremental computation, tracking changes in a hierarchical fashion in a novel demanded computation graph. λ ic also formalizes an explicit separation between inner, incremental computations and outer observers. This combination ensures λ ic programs only recompute computations as demanded by observers, and allows inner computations to be composed more freely. We describe an algorithm for implementing λ ic efficiently, and we present ADAPTON, a library for writing λ ic -style programs in OCaml. We evaluated ADAPTON on a range of benchmarks, and found that it provides reliable speedups, and in many cases dramatically outperforms prior state-of-the-art IC approaches.
منابع مشابه
A DAPTON : Composable , Demand - Driven Incremental Computation ( Extended
Many researchers have proposed programming languages that support incremental computation (IC), which allows programs to be efficiently re-executed after a small change to the input. However, existing implementations of such languages have two important drawbacks. First, recomputation is oblivious to specific demands on the program output; that is, if a program input changes, all dependencies w...
متن کاملADAPTON: Composable, Demand- Driven Incremental Computation
Many researchers have proposed programming languages that support incremental computation (IC), which allows programs to be efficiently re-executed after a small change to the input. However, existing implementations of such languages have two important drawbacks. First, recomputation is oblivious to specific demands on the program output; that is, if a program input changes, all dependencies w...
متن کاملComposable Incremental and Iterative Data-Parallel Computation with Naiad
We report on the design and implementation of Naiad, a set of declarative data-parallel language extensions and an associated runtime supporting efficient and composable incremental and iterative computation. This combination is enabled by a new computational model we call differential dataflow, in which incremental computation can be performed using a partial, rather than total, order on time....
متن کاملComposable Virtual Platforms for Mixed-Criticality Embedded Systems
r ecent trends show a steady increase towards concurrently executing more andmore applications on a single embedded system. Multi-Processor Systemon-Chip (MPSoC) architectures are proposed to allow complex design of embedded systems. is is achieved by integrating as many processing resources as possible on a single chip and therefore enabling the execution of multiple applications on a single ...
متن کاملA reactive extension of the OpenMusic visual programming language
Objectives: OpenMusic (OM) is a domain-specific visual programming language designed for computeraided music composition. This language based on Common Lisp allows composers to develop functional processes generating or transforming musical data, and to execute them locally by demand-driven evaluations. As most historical computer-aided composition environments, OM relies on a transformational ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2013